又是遲到的一天哈哈~
下方程式碼片段全部都是擷取自 Secure Code Warrior 線上安全程式培訓平台,因為練習互動時的題目多半不會只有單一個檔案,可能涉及多個檔案、資料夾及多處地方修改,因此我的文章主要是針對最主要的區塊做修改及說明,若有不好理解的地方非常抱歉也還請見諒,也可以實際上去 Secure Code Warrior 玩玩看,搭配著互動,會更有感的學習哦~
https://bank.com/transfer? amount=-1000&from=attacker&to=victim
situation2.loadFromFile("todaySituation", 3);
//程式碼片段擷取自 Secure Code Warrior 線上安全程式培訓平台
解釋:
當以非預期引數值作為第二個引數呼叫loadFromFile
函式時,函式邏輯將不正確,所有資料將被刪除。
把第二個引數拿掉改成,main.cpp:
situation2.addFromFile("todaySituation");
//程式碼片段擷取自 Secure Code Warrior 線上安全程式培訓平台
tacticalsituation.cpp:
if (sign != 1)
{
tracks_.clear();
}
if (sign == 1 || sign == 2)
{
for(const auto & el: tempSituation)
{
this->addTrack(el);
if (tracks_.max_size() == tracks_.size()) break;
}
return true;
//程式碼片段擷取自 Secure Code Warrior 線上安全程式培訓平台
改成
if (sign == signLoad::REPLACE)
{
tracks_.clear();
}
for(const auto & el: tempSituation)
{
this->addTrack(el);
if (tracks_.max_size() == tracks_.size()) break;
}
return true;
bool TacticalSituation::addFromFile(const std::string & filename)
{
return loadFromFile(filename, ADD);
}
bool TacticalSituation::replaceFromFile(const std::string & filename)
{
return loadFromFile(filename, REPLACE);
}
//程式碼片段擷取自 Secure Code Warrior 線上安全程式培訓平台
解釋:
避免使用不正確的引數值來呼叫函式。 loadFromFile
函式已成為私有函式,並添加了兩個以有效值呼叫它的公共函式。